home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Chat & Communication / Digsby build 37 / digsby_setup.exe / lib / distutils / sysconfig.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2008-10-13  |  11KB  |  392 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. __revision__ = '$Id: sysconfig.py 52234 2006-10-08 17:50:26Z ronald.oussoren $'
  5. import os
  6. import re
  7. import string
  8. import sys
  9. from distutils.errors import DistutilsPlatformError
  10. PREFIX = os.path.normpath(sys.prefix)
  11. EXEC_PREFIX = os.path.normpath(sys.exec_prefix)
  12. argv0_path = os.path.dirname(os.path.abspath(sys.executable))
  13. landmark = os.path.join(argv0_path, 'Modules', 'Setup')
  14. python_build = os.path.isfile(landmark)
  15. del landmark
  16.  
  17. def get_python_version():
  18.     return sys.version[:3]
  19.  
  20.  
  21. def get_python_inc(plat_specific = 0, prefix = None):
  22.     if prefix is None:
  23.         if not plat_specific or EXEC_PREFIX:
  24.             pass
  25.         prefix = PREFIX
  26.     
  27.     if os.name == 'posix':
  28.         if python_build:
  29.             base = os.path.dirname(os.path.abspath(sys.executable))
  30.             if plat_specific:
  31.                 inc_dir = base
  32.             else:
  33.                 inc_dir = os.path.join(base, 'Include')
  34.                 if not os.path.exists(inc_dir):
  35.                     inc_dir = os.path.join(os.path.dirname(base), 'Include')
  36.                 
  37.             return inc_dir
  38.         
  39.         return os.path.join(prefix, 'include', 'python' + get_python_version())
  40.     elif os.name == 'nt':
  41.         return os.path.join(prefix, 'include')
  42.     elif os.name == 'mac':
  43.         if plat_specific:
  44.             return os.path.join(prefix, 'Mac', 'Include')
  45.         else:
  46.             return os.path.join(prefix, 'Include')
  47.     elif os.name == 'os2':
  48.         return os.path.join(prefix, 'Include')
  49.     else:
  50.         raise DistutilsPlatformError("I don't know where Python installs its C header files on platform '%s'" % os.name)
  51.  
  52.  
  53. def get_python_lib(plat_specific = 0, standard_lib = 0, prefix = None):
  54.     if prefix is None:
  55.         if not plat_specific or EXEC_PREFIX:
  56.             pass
  57.         prefix = PREFIX
  58.     
  59.     if os.name == 'posix':
  60.         libpython = os.path.join(prefix, 'lib', 'python' + get_python_version())
  61.         if standard_lib:
  62.             return libpython
  63.         else:
  64.             return os.path.join(libpython, 'site-packages')
  65.     elif os.name == 'nt':
  66.         if standard_lib:
  67.             return os.path.join(prefix, 'Lib')
  68.         elif get_python_version() < '2.2':
  69.             return prefix
  70.         else:
  71.             return os.path.join(PREFIX, 'Lib', 'site-packages')
  72.     elif os.name == 'mac':
  73.         if plat_specific:
  74.             if standard_lib:
  75.                 return os.path.join(prefix, 'Lib', 'lib-dynload')
  76.             else:
  77.                 return os.path.join(prefix, 'Lib', 'site-packages')
  78.         elif standard_lib:
  79.             return os.path.join(prefix, 'Lib')
  80.         else:
  81.             return os.path.join(prefix, 'Lib', 'site-packages')
  82.     elif os.name == 'os2':
  83.         if standard_lib:
  84.             return os.path.join(PREFIX, 'Lib')
  85.         else:
  86.             return os.path.join(PREFIX, 'Lib', 'site-packages')
  87.     else:
  88.         raise DistutilsPlatformError("I don't know where Python installs its library on platform '%s'" % os.name)
  89.  
  90.  
  91. def customize_compiler(compiler):
  92.     if compiler.compiler_type == 'unix':
  93.         (cc, cxx, opt, cflags, ccshared, ldshared, so_ext) = get_config_vars('CC', 'CXX', 'OPT', 'CFLAGS', 'CCSHARED', 'LDSHARED', 'SO')
  94.         if os.environ.has_key('CC'):
  95.             cc = os.environ['CC']
  96.         
  97.         if os.environ.has_key('CXX'):
  98.             cxx = os.environ['CXX']
  99.         
  100.         if os.environ.has_key('LDSHARED'):
  101.             ldshared = os.environ['LDSHARED']
  102.         
  103.         if os.environ.has_key('CPP'):
  104.             cpp = os.environ['CPP']
  105.         else:
  106.             cpp = cc + ' -E'
  107.         if os.environ.has_key('LDFLAGS'):
  108.             ldshared = ldshared + ' ' + os.environ['LDFLAGS']
  109.         
  110.         if os.environ.has_key('CFLAGS'):
  111.             cflags = opt + ' ' + os.environ['CFLAGS']
  112.             ldshared = ldshared + ' ' + os.environ['CFLAGS']
  113.         
  114.         if os.environ.has_key('CPPFLAGS'):
  115.             cpp = cpp + ' ' + os.environ['CPPFLAGS']
  116.             cflags = cflags + ' ' + os.environ['CPPFLAGS']
  117.             ldshared = ldshared + ' ' + os.environ['CPPFLAGS']
  118.         
  119.         cc_cmd = cc + ' ' + cflags
  120.         compiler.set_executables(preprocessor = cpp, compiler = cc_cmd, compiler_so = cc_cmd + ' ' + ccshared, compiler_cxx = cxx, linker_so = ldshared, linker_exe = cc)
  121.         compiler.shared_lib_extension = so_ext
  122.     
  123.  
  124.  
  125. def get_config_h_filename():
  126.     if python_build:
  127.         inc_dir = argv0_path
  128.     else:
  129.         inc_dir = get_python_inc(plat_specific = 1)
  130.     if get_python_version() < '2.2':
  131.         config_h = 'config.h'
  132.     else:
  133.         config_h = 'pyconfig.h'
  134.     return os.path.join(inc_dir, config_h)
  135.  
  136.  
  137. def get_makefile_filename():
  138.     if python_build:
  139.         return os.path.join(os.path.dirname(sys.executable), 'Makefile')
  140.     
  141.     lib_dir = get_python_lib(plat_specific = 1, standard_lib = 1)
  142.     return os.path.join(lib_dir, 'config', 'Makefile')
  143.  
  144.  
  145. def parse_config_h(fp, g = None):
  146.     if g is None:
  147.         g = { }
  148.     
  149.     define_rx = re.compile('#define ([A-Z][A-Za-z0-9_]+) (.*)\n')
  150.     undef_rx = re.compile('/[*] #undef ([A-Z][A-Za-z0-9_]+) [*]/\n')
  151.     while None:
  152.         line = fp.readline()
  153.         if not line:
  154.             break
  155.         
  156.         m = define_rx.match(line)
  157.         if m:
  158.             (n, v) = m.group(1, 2)
  159.             
  160.             try:
  161.                 v = int(v)
  162.             except ValueError:
  163.                 pass
  164.  
  165.             g[n] = v
  166.             continue
  167.         m = undef_rx.match(line)
  168.         if m:
  169.             g[m.group(1)] = 0
  170.             continue
  171.         continue
  172.         return g
  173.  
  174. _variable_rx = re.compile('([a-zA-Z][a-zA-Z0-9_]+)\\s*=\\s*(.*)')
  175. _findvar1_rx = re.compile('\\$\\(([A-Za-z][A-Za-z0-9_]*)\\)')
  176. _findvar2_rx = re.compile('\\${([A-Za-z][A-Za-z0-9_]*)}')
  177.  
  178. def parse_makefile(fn, g = None):
  179.     TextFile = TextFile
  180.     import distutils.text_file
  181.     fp = TextFile(fn, strip_comments = 1, skip_blanks = 1, join_lines = 1)
  182.     if g is None:
  183.         g = { }
  184.     
  185.     done = { }
  186.     notdone = { }
  187.     while None:
  188.         line = fp.readline()
  189.         if line is None:
  190.             break
  191.         
  192.         m = _variable_rx.match(line)
  193.         if m:
  194.             (n, v) = m.group(1, 2)
  195.             v = string.strip(v)
  196.             if '$' in v:
  197.                 notdone[n] = v
  198.             else:
  199.                 
  200.                 try:
  201.                     v = int(v)
  202.                 except ValueError:
  203.                     pass
  204.  
  205.                 done[n] = v
  206.         continue
  207.         while notdone:
  208.             for name in notdone.keys():
  209.                 value = notdone[name]
  210.                 if not _findvar1_rx.search(value):
  211.                     pass
  212.                 m = _findvar2_rx.search(value)
  213.                 if m:
  214.                     n = m.group(1)
  215.                     found = True
  216.                     if done.has_key(n):
  217.                         item = str(done[n])
  218.                     elif notdone.has_key(n):
  219.                         found = False
  220.                     elif os.environ.has_key(n):
  221.                         item = os.environ[n]
  222.                     else:
  223.                         done[n] = item = ''
  224.                     if found:
  225.                         after = value[m.end():]
  226.                         value = value[:m.start()] + item + after
  227.                         if '$' in after:
  228.                             notdone[name] = value
  229.                         else:
  230.                             
  231.                             try:
  232.                                 value = int(value)
  233.                             except ValueError:
  234.                                 done[name] = string.strip(value)
  235.  
  236.                             done[name] = value
  237.                             del notdone[name]
  238.                     
  239.                 found
  240.                 del notdone[name]
  241.             
  242.         fp.close()
  243.         g.update(done)
  244.         return g
  245.  
  246.  
  247. def expand_makefile_vars(s, vars):
  248.     while not _findvar1_rx.search(s):
  249.         m = _findvar2_rx.search(s)
  250.         if m:
  251.             (beg, end) = m.span()
  252.             s = s[0:beg] + vars.get(m.group(1)) + s[end:]
  253.             continue
  254.     break
  255.     continue
  256.     return s
  257.  
  258. _config_vars = None
  259.  
  260. def _init_posix():
  261.     global _config_vars
  262.     g = { }
  263.     
  264.     try:
  265.         filename = get_makefile_filename()
  266.         parse_makefile(filename, g)
  267.     except IOError:
  268.         msg = None
  269.         my_msg = 'invalid Python installation: unable to open %s' % filename
  270.         if hasattr(msg, 'strerror'):
  271.             my_msg = my_msg + ' (%s)' % msg.strerror
  272.         
  273.         raise DistutilsPlatformError(my_msg)
  274.  
  275.     
  276.     try:
  277.         filename = get_config_h_filename()
  278.         parse_config_h(file(filename), g)
  279.     except IOError:
  280.         msg = None
  281.         my_msg = 'invalid Python installation: unable to open %s' % filename
  282.         if hasattr(msg, 'strerror'):
  283.             my_msg = my_msg + ' (%s)' % msg.strerror
  284.         
  285.         raise DistutilsPlatformError(my_msg)
  286.  
  287.     if sys.platform == 'darwin' and g.has_key('MACOSX_DEPLOYMENT_TARGET'):
  288.         cfg_target = g['MACOSX_DEPLOYMENT_TARGET']
  289.         cur_target = os.getenv('MACOSX_DEPLOYMENT_TARGET', '')
  290.         if cur_target == '':
  291.             cur_target = cfg_target
  292.             os.putenv('MACOSX_DEPLOYMENT_TARGET', cfg_target)
  293.         elif map(int, cfg_target.split('.')) > map(int, cur_target.split('.')):
  294.             my_msg = '$MACOSX_DEPLOYMENT_TARGET mismatch: now "%s" but "%s" during configure' % (cur_target, cfg_target)
  295.             raise DistutilsPlatformError(my_msg)
  296.         
  297.     
  298.     if python_build:
  299.         g['LDSHARED'] = g['BLDSHARED']
  300.     elif get_python_version() < '2.1':
  301.         if sys.platform == 'aix4':
  302.             python_lib = get_python_lib(standard_lib = 1)
  303.             ld_so_aix = os.path.join(python_lib, 'config', 'ld_so_aix')
  304.             python_exp = os.path.join(python_lib, 'config', 'python.exp')
  305.             g['LDSHARED'] = '%s %s -bI:%s' % (ld_so_aix, g['CC'], python_exp)
  306.         elif sys.platform == 'beos':
  307.             python_lib = get_python_lib(standard_lib = 1)
  308.             linkerscript_path = string.split(g['LDSHARED'])[0]
  309.             linkerscript_name = os.path.basename(linkerscript_path)
  310.             linkerscript = os.path.join(python_lib, 'config', linkerscript_name)
  311.             g['LDSHARED'] = '%s -L%s/lib -lpython%s' % (linkerscript, PREFIX, get_python_version())
  312.         
  313.     
  314.     _config_vars = g
  315.  
  316.  
  317. def _init_nt():
  318.     global _config_vars
  319.     g = { }
  320.     g['LIBDEST'] = get_python_lib(plat_specific = 0, standard_lib = 1)
  321.     g['BINLIBDEST'] = get_python_lib(plat_specific = 1, standard_lib = 1)
  322.     g['INCLUDEPY'] = get_python_inc(plat_specific = 0)
  323.     g['SO'] = '.pyd'
  324.     g['EXE'] = '.exe'
  325.     _config_vars = g
  326.  
  327.  
  328. def _init_mac():
  329.     global _config_vars
  330.     g = { }
  331.     g['LIBDEST'] = get_python_lib(plat_specific = 0, standard_lib = 1)
  332.     g['BINLIBDEST'] = get_python_lib(plat_specific = 1, standard_lib = 1)
  333.     g['INCLUDEPY'] = get_python_inc(plat_specific = 0)
  334.     import MacOS as MacOS
  335.     if not hasattr(MacOS, 'runtimemodel'):
  336.         g['SO'] = '.ppc.slb'
  337.     else:
  338.         g['SO'] = '.%s.slb' % MacOS.runtimemodel
  339.     g['install_lib'] = os.path.join(EXEC_PREFIX, 'Lib')
  340.     g['install_platlib'] = os.path.join(EXEC_PREFIX, 'Mac', 'Lib')
  341.     g['srcdir'] = ':'
  342.     _config_vars = g
  343.  
  344.  
  345. def _init_os2():
  346.     global _config_vars
  347.     g = { }
  348.     g['LIBDEST'] = get_python_lib(plat_specific = 0, standard_lib = 1)
  349.     g['BINLIBDEST'] = get_python_lib(plat_specific = 1, standard_lib = 1)
  350.     g['INCLUDEPY'] = get_python_inc(plat_specific = 0)
  351.     g['SO'] = '.pyd'
  352.     g['EXE'] = '.exe'
  353.     _config_vars = g
  354.  
  355.  
  356. def get_config_vars(*args):
  357.     global _config_vars
  358.     if _config_vars is None:
  359.         func = globals().get('_init_' + os.name)
  360.         if func:
  361.             func()
  362.         else:
  363.             _config_vars = { }
  364.         _config_vars['prefix'] = PREFIX
  365.         _config_vars['exec_prefix'] = EXEC_PREFIX
  366.         if sys.platform == 'darwin':
  367.             kernel_version = os.uname()[2]
  368.             major_version = int(kernel_version.split('.')[0])
  369.             if major_version < 8:
  370.                 for key in ('LDFLAGS', 'BASECFLAGS', 'CFLAGS', 'PY_CFLAGS', 'BLDSHARED'):
  371.                     flags = _config_vars[key]
  372.                     flags = re.sub('-arch\\s+\\w+\\s', ' ', flags)
  373.                     flags = re.sub('-isysroot [^ \t]*', ' ', flags)
  374.                     _config_vars[key] = flags
  375.                 
  376.             
  377.         
  378.     
  379.     if args:
  380.         vals = []
  381.         for name in args:
  382.             vals.append(_config_vars.get(name))
  383.         
  384.         return vals
  385.     else:
  386.         return _config_vars
  387.  
  388.  
  389. def get_config_var(name):
  390.     return get_config_vars().get(name)
  391.  
  392.